//
//  ViewController.m
//  08_UITableView
//
//  Created by 徐昊 on 16/7/25.
//  Copyright © 2016年 徐昊. All rights reserved.
//

#import "ViewController.h"
#import "UIView+Frame.h"

#define kTableViewCellName @"reuseIdentifier"
@interface ViewController ()<UITableViewDelegate, UITableViewDataSource>
// 计数器
@property  (nonatomic, assign) NSInteger numberCount;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.navigationController.navigationBarHidden = YES;
//    self.navigationController.navigationBar.hidden = YES;
    // UITableView
    // 1.基本创建
    // UITableViewStyleGrouped 去掉多余的行
    UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    [self.view addSubview:tableView];
    // tableView默认创建alwaysBounceVertical 为开启状态
    tableView.alwaysBounceVertical = NO;
    // 2.行高
    // 直接设置, 行高(默认: 44)
//    tableView.rowHeight = 200;
    // 预估行高度
    tableView.estimatedRowHeight = 100;
    // 分割线颜色
    tableView.separatorColor = [UIColor redColor];
    // 分割线样式
    // 设置隐藏分割线: UITableViewCellSeparatorStyleNone
    // 默认: UITableViewCellSeparatorStyleSingleLine
//    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    // tableView 头视图
    // headerView的x, y不影响其位置
    // 例: 轮播图, 个人资料
//    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(1000, 1000, self.view.bounds.size.width, 200)];
//    headerView.backgroundColor = [UIColor blackColor];
//    // 如果tableHeaderView要进行频繁修改, 必须加上
//    // beginUpdates
//    // endUpdated
//    [tableView beginUpdates];
//    tableView.tableHeaderView = headerView;
//    [tableView endUpdates];
    
    // footerView x会对尾视图产生坐标影响, y不会
//    UIView *footView = [[UIView alloc] initWithFrame:CGRectMake(0, 1000, self.view.h_width, 400)];
//    footView.backgroundColor = [UIColor orangeColor];
//    [tableView beginUpdates];
//    tableView.tableFooterView = footView;
//    [tableView endUpdates];
    
    // 隐藏多余的tableView 的 空Cell
    // 空cell 一般出现在一个界面只展示几条数据时, 并且数据占不满整个屏幕
    tableView.tableFooterView = [UIView new];
    
    // 3.tableView 数据展示
    // delegate 代理, 帮助tableView执行时间
    // datasource 数据库, 用来给tableView展示数据
    tableView.delegate = self;
    tableView.dataSource = self;
    // 注册cell
    [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:kTableViewCellName];
}
// 返回数据源的个数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 100;
}
// 返回数据源cell的样式
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // 2.cell创建方式二
    // 从重用池中取出对应标识的cell
//    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kTableViewCellName];
    // 如果重用池中取出的cell为空, 创建一个新的cell
//    if (cell == nil) {
//        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kTableViewCellName];
//        _numberCount++;
//        NSLog(@"创建新cell-----%@-----%ld", cell, _numberCount);
//    } else {
//        NSLog(@"重用旧cell-----%@-----%ld", cell, _numberCount);
//    }
    // cell Style
//    UITableViewCellStyleDefault cell默认style 没有副标题
//    UITableViewCellStyleValue1 最左边主标题(黑), 最右边副标题(灰)
//    UITableViewCellStyleValue2 小字号, 蓝色主标题, 黑色副标题, 主副标题紧挨
//    UITableViewCellStyleSubtitle 主副标题上下紧挨, 主标题字号大, 副标题字号小
    // cell创建方式三 通过registerClass方式创建
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kTableViewCellName];
    cell.backgroundColor = [UIColor yellowColor];
    // cell 主标题
    cell.textLabel.text = @"嘿嘿嘿";
    // cell 副标题
    cell.detailTextLabel.text = @"老瞎子";
    // cell 图片
    cell.imageView.image = [UIImage imageNamed:@"@1"];
    return cell;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
